<!doctype html>
<meta name="timeout" content="long">
<title>RTCConfiguration validation</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="RTCConfiguration-helper.js"></script>
<script src="RTCPeerConnection-helper.js"></script>
<script>
  test(() => {
    // Check that a configuration change gets applied only if it's entirely valid
    // see https://github.com/w3c/webrtc-pc/issues/2688
    // and https://github.com/w3c/webrtc-pc/pull/2689
    const pc = new RTCPeerConnection();
    assert_equals(pc.getConfiguration().iceTransportPolicy, 'all');
    assert_throws_dom('SyntaxError', () =>
      pc.setConfiguration({iceTransportPolicy: 'relay', iceServers: [{urls: ""}]})
    );
    assert_equals(pc.getConfiguration().iceTransportPolicy, 'all');
  }, `setConfiguration only applies if the entire configuration is valid`);
</script>
